<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
    <script>
        //编写要执行的异步代码
        // console.log(1);
        // let promise=new Promise(function(resolve,reject){
        //     console.log(2);
        //     setTimeout(function(){
        //         console.log(3);
        //         //告诉系统异步执行成功
        //         // resolve();
        //         //告诉系统异步执行失败
        //         // reject();
        //         if(Math.random()<0.5){
        //             console.log('resolve');
        //             resolve('异步成功');
        //         }else{
        //             console.log('reject');
        //             reject('异步失败');
        //         }
        //     },1000);
        // });
        // console.log(4);
        //配置then和catch
        // promise.then(function(v){
        //     console.log('异步成功时要执行的代码',v);
        // }).catch(function(v){
        //     console.log('异步失败时要执行的代码',v);
        // });
        // console.log(5);
        //1 4 5 2 3
        //1 4 2 3 5


        // let typePromise = new Promise(function (resolve, reject) {
        //     $.ajax({
        //         url: 'https://www.fastmock.site/mock/bb4157f45a0b5ffdcb3f6d984517a6c0/woniuMovie/getAllTypes',
        //         success: function (data) {
        //             //异步成功
        //             resolve(data);
        //         },
        //         error: function () {
        //             //异步失败
        //             reject('类型失败');
        //         }

        //     });
        // });

        // let opePromise = new Promise(function (resolve, reject) {
        //     $.ajax({
        //         url: 'https://www.fastmock.site/mock/bb4157f45a0b5ffdcb3f6d984517a6c0/woniuMovie/getAllOperas',
        //         success: function (data) {
        //             resolve(data);
        //         },
        //         error: function () {
        //             reject('影院失败');
        //         }
        //     });
        // });

        // typePromise.then(function (v) {
        //     //类型异步成功时要执行的代码
        //     console.log('类型异步成功',v);
        //     return opePromise;
        // }).then(function (v) {
        //     //电影院异步成功
        //     console.log('电影院异步成功',v);
        // });


        function getPromise(url) {
            return new Promise(function (resolve, reject) {
                $.ajax({
                    url,
                    success: function (data) {
                        console.log('resolve');
                        resolve(data);
                    },
                    error: function () {
                        console.log('reject');
                        reject('异步失败');
                    }
                });
            });
        }

        let artType = getPromise('https://www.fastmock.site/mock/40e170f960701a834866a0bc956002f6/tickets/getAllTypes');
        let art = getPromise('https://www.fastmock.site/mock/40e170f960701a834866a0bc956002f6/tickets/getAllArts');
        //配置
        // let typeData;
        // artType.then(function(data){
        //     console.log('演艺类型数据',data);
        //     typeData=data;
        //     return art;
        // }).then(function(data){
        //     //获取类型数据？
        //     console.log(typeData);
        //     console.log('演艺数据',data);
        // });

        // Promise.all([artType,art]).then(function(data){
        //     console.log('指定的Promise对象都执行了resovle后执行',data);

        // }).catch(function(data){
        //     console.log('指定的Promise对象有一个执行了reject后执行',data);
        // });

        console.log(1);
        async function demo(){
            console.log(2);
            let re=await artType;
            console.log(4,re);
            let re2=await art;
            console.log(5,re2);
        }
        demo();
        console.log(3);


        // function getPromise() {
        //     return new Promise(function (resolve, reject) {
        //         setTimeout(function () {
        //             let n=Math.random();
        //             if (n < 0.5) {
        //                 console.log('resolve');
        //                 resolve('异步成功'+n);
        //             } else {
        //                 console.log('reject');
        //                 reject('异步失败'+n);
        //             }
        //         }, 1000);
        //     });
        // }
        // let one=getPromise();
        // let two=getPromise();
        // Promise.all([one,two]).then(function(data){
        //     console.log('都异步成功',data);
        // }).catch(function(data){
        //     console.log('有一个异步失败',data);
        // });

        // Promise.race([one,two]).then(function(data){
        //     console.log('任意一个执行了resolve',data);
        // }).catch(function(data){
        //     console.log('任意一个执行了reject',data);
        // });

    </script>
</head>

<body>

</body>

</html>